import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 读取Excel文件，假设Excel文件中包含多个Sheet
xls = pd.ExcelFile('C:/Users/zlsjBIDF/Downloads/例子.xlsx')
# 用于存储每个标签的统计结果
stats = {}

for sheet_name in xls.sheet_names:
    df = xls.parse(sheet_name)  # 读取标签数据
    # 忽略空值，对每列进行种类及个数的统计
    for col in df.columns:
        stats[f"{sheet_name}_{col}"] = df[col].dropna().value_counts()


for key, value in stats.items():
    plt.figure(figsize=(10, 6))  # 设置图形大小

    value.index=value.index.astype(str)
    # 获取条形图的x轴标签和y轴的高度值
    x_labels = value.index.tolist()
    x_labels = [x_label.strip("'") for x_label in x_labels]
    y_values = value.values.tolist()
    print(x_labels)
    # 绘制条形图
    plt.bar(x_labels, y_values)

    # 解析key来获取sheet和col的名称
    sheet, col = key.split("_", 1)
    plt.title(f'标签 {sheet} 中列 {col} 的内容种类及个数统计')  # 设置标题
    plt.xlabel('内容种类')  # 设置X轴标签
    plt.ylabel('个数')  # 设置Y轴标签
    plt.xticks(rotation=45)  # 旋转X轴标签，便于阅读

    # 显示图形
    plt.tight_layout()  # 调整布局以适应标签
    plt.show()